/**
 * Используется в тех случаях, когда значение параметра или возвращаемого
 * значения по указателю равно NULL, и такое значение не является корректным.
 * Является неперехватываемым исключением, так как нарушаются инварианты класса.
 */

#ifndef _NULLPOINTEREXCEPTION_H
#define	_NULLPOINTEREXCEPTION_H

#include <string>
#include "RuntimeException.h"

namespace etu {
namespace common {

class NullPointerException : public RuntimeException {
public:
    NullPointerException(const char* message) throw() : RuntimeException(message) {}
    NullPointerException(std::string message) throw() : RuntimeException(message) {}
    NullPointerException(const NullPointerException& orig) throw() : RuntimeException(orig) {}
    virtual ~NullPointerException() throw() {}
};

}
}

#endif	/* _NULLPOINTEREXCEPTION_H */

